<!doctype html>
<html lang="zh-CN">
<head>

    <meta charset="utf-8">
    <meta name="generator" content="Hugo 0.74.1" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Mac Flutter 开发环境配置 从0到1 流程 | caijinglong的博客</title>
    <meta property="og:title" content="Mac Flutter 开发环境配置 从0到1 流程 - caijinglong的博客">
    <meta property="og:type" content="article">
        
    <meta property="article:published_time" content="2018-08-04T12:08:18&#43;08:00">
        
        
    <meta property="article:modified_time" content="2018-08-04T12:08:18&#43;08:00">
        
    <meta name="Keywords" content="golang,go语言,flutter,caijinglong,java,android,博客,项目管理,python,软件架构,公众号,小程序">
    <meta name="description" content="Mac Flutter 开发环境配置 从0到1 流程">
        
    <meta name="author" content="caijinglong">
    <meta property="og:url" content="http://www.kikt.top/posts/flutter/mac-flutter-env-0-to-1/">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

    <link rel="stylesheet" href="/css/normalize.css">
    
        <link rel="stylesheet" href="/css/prism.css">
    
    <link rel="stylesheet" href="/css/style.css">
    <script type="text/javascript" src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

    

   
    <script>
        (function(){
            var bp = document.createElement('script');
            var curProtocol = window.location.protocol.split(':')[0];
            if (curProtocol === 'https') {
                bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
            }
            else {
                bp.src = 'http://push.zhanzhang.baidu.com/push.js';
            }
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(bp, s);
        })();
    </script>

    
    
</head>

<body>
<header id="header" class="clearfix">
    <div class="container">
        <div class="col-group">
            <div class="site-name ">
                
                    <a id="logo" href="http://www.kikt.top">
                        caijinglong的博客
                    </a>
                
                <p class="description">Android/Flutter开发者，对于golang/python/ios/java 均有所了解</p>
            </div>
            <div>
                <nav id="nav-menu" class="clearfix">
                    <a class="" href="http://www.kikt.top">首页</a>
                    
                    <a  href="http://www.kikt.top/archives/" title="归档">归档</a>
                    
                    <a  href="http://www.kikt.top/contact/" title="接单">接单</a>
                    
                    <a  href="http://www.kikt.top/about/" title="关于">关于</a>
                    
                </nav>
            </div>
        </div>
    </div>
</header>


<div id="body">
    <div class="container">
        <div class="col-group">

            <div class="col-8" id="main">
                <div class="res-cons">
                    <article class="post">
                        <header>
                            <h1 class="post-title">Mac Flutter 开发环境配置 从0到1 流程</h1>
                        </header>
                        <date class="post-meta meta-date">
                            2018年8月4日
                        </date>
                        
                        <div class="post-meta meta-category">
                            |
                            
                                <a href="http://www.kikt.top/categories/flutter">flutter</a>
                            
                        </div>
                        
                        
                        <div class="post-meta">
                            <span id="busuanzi_container_page_pv">|<span id="busuanzi_value_page_pv"></span><span> 阅读</span></span>
                        </div>
                        
                        <div class="post-content">
                            <h1 id="mac-开发环境配置-从入门到完成">mac 开发环境配置 从入门到完成</h1>
<p>本文首发简书
转载请注明出处
<a href="https://www.jianshu.com/p/c55ad0e8f24f">原文连接</a>
<a href="https://juejin.im/post/5b66ef39f265da0f8e1a0af8">掘金连接</a></p>
<blockquote>
<p>高能提示：文章字数不多，图很多，请做好战斗准备</p>
</blockquote>
<h2 id="前言">前言</h2>
<p>写这篇文章的原因是我自己的 macbook 开不开机，返修后，所有开发环境全部没有了，正好要重新配置开发环境，所以写一个从零配置的文章
因为 flutter 涉及到跨平台开发，所以预想中会包含四部分
mac 篇，android 篇，ios 篇，flutter 篇</p>
<h3 id="术语相关">术语相关</h3>
<p>cmd = command 键（空格左边）
opt／alt = option 键（cmd 左边）
ctrl = control（opt 左边）
cli = 命令行工具（command-line interface,命令行界面)
as = Android Studio</p>
<h3 id="写在前面">写在前面</h3>
<p>最低需要 xcode 9.0.0 以上的 xcode 版本
但是不建议从非官方渠道下载 xcode，以免遇到之前盗版 xcode 的问题</p>
<p>我就是都装好了 8.3 才告诉我这个，没办法只能升级系统，再升级 xcode</p>
<h3 id="mac-篇">mac 篇</h3>
<p>所谓 mac 篇就是一些基础的环境，和效率工具</p>
<p>后面会使用</p>
<h4 id="cli">cli</h4>
<p>我这里使用<a href="https://www.iterm2.com/">iterm2</a>，一个免费的开源的命令行工具
默认的命令行工具用 launchpad=&gt; 其他 =&gt; 终端打开</p>
<p>zsh，用于替换 bash 环境，直接命令行中敲 zsh,即可进入，修改默认 zsh 的可以自行百度
oh my zsh，一个 zsh 插件 具体可以自行百度</p>
<p><a href="https://brew.sh/index_zh-cn">brew</a> 一个很方便的包管理工具，基于 ruby+git
命令行敲
<code>/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;</code>即可
这里会自动安装 xcode 命令行环境，git 环境，需要输入密码确认</p>
<h4 id="效率篇">效率篇</h4>
<p>Alfred 一个快速开启 app 的辅助工具
Paw http 工具
Sip 取色器</p>
<h4 id="dmg-相关">dmg 相关</h4>
<p>遇到提示 dmg 损坏，不要着急 并不一定是真的损坏里，参考这里 <a href="https://bbs.feng.com/read-htm-tid-10584598.html">https://bbs.feng.com/read-htm-tid-10584598.html</a> ，允许所有的来源即可</p>
<p>对于 mac 新手来说，可能不会使用 dmg，双击打开，有允许点允许，有 dmg 密码输入密码，最后将应用拖入到 application／应用里，一般 dmg 里都有快捷方式，没有的话自己打开 finder／访达，拖到应用程序里面也行
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-6b7c05851cc40482.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<h4 id="环境变量相关">环境变量相关</h4>
<p>不会配置环境变量的，这要仔细看了
在 cli 中敲对应的命令即可</p>
<p>export NAME=VALUE //加入环境变量
unset NAME //删除环境变量</p>
<p>source fileName //使重新读取配置文件</p>
<p>这个敲击仅当前 cli 或衍生 cli 有效，想要永久生效就要将配置加入配置文件中</p>
<p>默认是 bash，所以我们编辑 bash 的配置文件
<code>vi .bash_profile</code> 我这里使用的是 vim 工具，如果不习惯 后续的 vi 可以换成 open ，遇到文件不存在就先敲 touch $fileName</p>
<p>默认是没有.bash_profile 文件的，创建 并添加
<code>export PATH=XXXXX:$PATH</code>
这里 XXX 代表了你自己的环境变量（adb，jdk，flutter）等</p>
<p>因为我使用的是 zsh,这里配置 zsh 相关的，让 zsh 可以“读取”到 bash 的配置即可</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">vi .zshrc
</code></pre></div><p>在最后一行添加
<code>source .bash_profile</code>
保存，退出</p>
<p>vi 个人常用命令
i 插入 a 在后插入
shift+4 行尾
l+数字，enter 指定行号
dd 删除行
yy 复制行
p 粘贴行
:wq 保存退出
:q 保存退出
:q! 强制退出不保存</p>
<h3 id="ios-篇">ios 篇</h3>
<p>从 app store 安装 xcode，建议不要使用迅雷等工具下载
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-e99169decb31881c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/640" alt="image.png">
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-10569c09688c5f7d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/640" alt="image.png"></p>
<p>我这里不是最新的 mac os 版本，所以需要下一个旧的 xcode</p>
<p>等待漫长的安装，然后运行 xcode
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-f3d83e974aadb747.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
只能同意</p>
<p>等待中
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-1b9e62c005e6fb98.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-24afe94aa48d308d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
看到这里 xcode 就算 ok 了</p>
<p>插一句，我这里因为先安装了 brew，所以 xcode 命令行工具预先安装到了 mac 里，如果没装 brew，这里可能会提示安装 xcode 命令行工具，git 等等，请同意即可</p>
<p>点击 cmd+，打开首选项
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-dfdb092b6b176c7d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="首选项">
左下角加号 apple id 来登陆你自己的苹果开发者账号／ 不是开发者也能开发 ios 就是不能上传 apple store
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-a82200ec141c3b61.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="img"></p>
<h3 id="android-环境篇">android 环境篇</h3>
<h4 id="android-studio-安装">android studio 安装</h4>
<p>这里我使用一个中文镜像 <a href="http://www.android-studio.org/">http://www.android-studio.org/</a> 下载
有梯子的可以去 android 官网下载</p>
<p>拖到 application 里</p>
<p>打开</p>
<p>出现这个不要紧 cancel 就行
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-5c465302bcb20b0f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>一路 next
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-e8ec0518d7b52eda.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>finish
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-67eff361646abefc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>等待，这里大部分的资源目前应该不需要梯子，头几年都是要翻才能下的
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-8fb6538ffb94070c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>finish
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-6fdc74053f4446c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>出现这个窗口就说明 android 的环境 ok 了
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-09089ea8a8fe6efb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<h4 id="配置-android-的环境变量">配置 android 的环境变量</h4>
<h5 id="jdk">jdk</h5>
<p><a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">oracle jdk1.8</a>
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-254632f193303fa9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
打开 dmg
双击 pkg
一路 next</p>
<p>新开一个命令行
javac -version
java -version</p>
<p>能正确显示版本号即可
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-7f34f841671d9bd6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<blockquote>
<p>添加 javahome 环境变量</p>
</blockquote>
<p>如果你是 pkg 安装的，先看看 java 安装目录，自己解压的压缩包那就按照自己的目录</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">/usr/libexec/java_home -V
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-2ed4646bd869ffbd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
复制这里的最后一行 也就是那个 Home 的目录</p>
<p>配置在.bash_profile 里</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">export JAVA_HOME<span style="color:#f92672">=</span>/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
export PATH<span style="color:#f92672">=</span>$JAVA_HOME/bin:$PATH
</code></pre></div><p>别忘了</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">source .bash_profile
</code></pre></div><h5 id="androidsdk">androidsdk</h5>
<p>如果是通过刚刚的 android studio 自动安装的，则目录会在<code>/Users/caijinglong/Library/Android/sdk</code>下
这里根据你的用户名不同会有不同的地址，继续添加到.bash_profile 中</p>
<p>目前我的.bash_profile 是这样的</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">export ANDROID_HOME<span style="color:#f92672">=</span>/Users/caijinglong/Library/Android/sdk/
export JAVA_HOME<span style="color:#f92672">=</span>/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
export PATH<span style="color:#f92672">=</span>$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$PATH
</code></pre></div><p>第三行的$JAVA_HOME/bin 有没有其实没关系
现在返回 cli 中，敲<code>adb</code>会出现很长的英文，这个是 adb 命令的说明
能出现则说明成功，不成功的话请重新检查下环境变量是不是没配置好</p>
<h3 id="flutter-篇">flutter 篇</h3>
<p>终于要开始 flutter 篇了</p>
<h4 id="pub-环境变量">pub 环境变量</h4>
<p>这里建议没有常驻翻墙的同学打开下面的页面，配置下中文的 pub 镜像，pub 是 dart 官方提供的一个中心仓库，可以将依赖／开源库上传到上面</p>
<p><a href="https://github.com/flutter/flutter/wiki/Using-Flutter-in-China">https://github.com/flutter/flutter/wiki/Using-Flutter-in-China</a></p>
<h4 id="官网">官网</h4>
<p>有能力的同学这里自己进入<a href="https://flutter.io">flutter 官网</a>按照 mac 篇进行配置
或者继续看下去</p>
<h4 id="开始安装-flutter">开始安装 flutter</h4>
<p>cli：</p>
<pre><code class="language-linux" data-lang="linux">cd ~/Library
mkdir Flutter &amp;&amp; cd Flutter
</code></pre><p>这里可能会比较慢 可以使用 gitee 的镜像来 clone</p>
<pre><code class="language-git" data-lang="git">//github
git clone -b dev https://github.com/flutter/flutter.git

//gitee（我同步github的库）
git clone -b dev https://gitee.com/kikt/flutter.git
</code></pre><p>后续修改 git 的 remote 为 github 地址即可</p>
<pre><code class="language-git" data-lang="git">git remote set-url origin https://github.com/flutter/flutter.git
</code></pre><p>查看下</p>
<pre><code class="language-git" data-lang="git">git remote -v
</code></pre><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-499f59b415c84b3e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<h4 id="配置-flutter-的环境变量">配置 flutter 的环境变量</h4>
<p>这里配置 flutter_home</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">export FLUTTER_HOME<span style="color:#f92672">=</span>/Users/caijinglong/Library/Flutter/flutter
export PATH<span style="color:#f92672">=</span>$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$FLUTTER_HOME/bin:$PATH
</code></pre></div><p>接着返回 cli</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">cd ~
source .bash_profile
flutter doctor -v
</code></pre></div><p>这个 flutter doctor -v
就是显示 flutter 的环境问题，以后可能会经常敲</p>
<p>这里加-v 就是详情，如果有问题需要帮助，这里一定要带-v
这里加-v 就是详情，如果有问题需要帮助，这里一定要带-v
这里加-v 就是详情，如果有问题需要帮助，这里一定要带-v</p>
<blockquote>
<p>这里加-v 就是详情，如果有问题需要帮助，这里一定要带-v</p>
</blockquote>
<p>接着就是漫长的等待，这里会下载 flutter 的相关构建工具等等
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-6fb13f06bc11837c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-f4f64f196038ea5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>这里带 X 的就是有问题的，我们需要一项项的去解决
大部分都给了 cli 方案 就是 run： 后面的东西
这里我们看到了建议大家使用 brew 去安装这些库，这也是为什么我这里开篇就介绍如何安装 brew 的原因</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-8faa408876eabd94.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>这里我标记了 6 个问题</p>
<ol>
<li>android 许可证问题</li>
</ol>
<p><code>flutter doctor --android-licenses</code>
一路 y 过去
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-24c1042f1f7a47a8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<ol start="2">
<li>xcode 的问题</li>
</ol>
<p><code>sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer</code></p>
<ol start="3">
<li>
<ol start="4">
<li>flutter ios 工具链的问题</li>
</ol>
</li>
</ol>
<p>这里需要使用 brew 安装一些工具以帮助 flutter 可以调试 ios 程序，你模拟器能跑起来，但是 ios 真机不行大概率就是这里的原因
cli:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">brew install --HEAD libimobiledevice<span style="color:#e6db74">`</span>
</code></pre></div><p>这里会安装很多的二进制库
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-f62f12c12f53d137.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
完成后继续下一步</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">brew install ideviceinstaller
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-6279aba33fdfd462.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里比较简短</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">brew install ios-deploy
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-7a1a408e2a52f93e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<blockquote>
<ol start="5">
<li>这里是 ios 开发相关的了</li>
</ol>
</blockquote>
<p>使用 cocoapod 作为 ios 的库管理工具，这个是 ios 开发中很常见的一个包管理工具，我们按照提示安装</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">brew install cocoapods
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-2731c487b83c3041.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>接着是安装 pod 的库相关的索引</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">pod setup
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-94c71d32c8d431f2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>这里看到 下载速度还行，虽然没有国内快，但是也有接近 4m 的速度了，如果这里你的速度不佳，可以考虑使用 gitee 的 spec 中转，</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-c15a435a3f5077c1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里因为涉及到的文件很多 百万级文件数量，所以会比较慢，耐心等待就行了
如果你是 imac／mac mini 没有固态，建议你自己想办法加一个，不然这步时间可能 1 ～ 3 小时不等
我的 2016 款 macbook pro 是 pcie 的 ssd，下载时间大概 5 分钟，“解压”也用了 5 分钟，全程 10 分钟左右</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-b912c34a9002ce43.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>平心而论，pod 的索引方式个人感觉很蠢，最初数量级小的情况下还算能接受，现在 pod 的库数量越来越多，用这种方式来做中心库索引简直接受不了，后面会越来越臃肿</p>
<blockquote>
<ol start="6">
<li>android studio 插件问题</li>
</ol>
</blockquote>
<p>在 studio 中点 cmd+, 打开首选项
点击 plugin</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-faf6e6549bba2f49.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-c14a162b6b6a0c53.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>选下载人多的
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-b0a1f9a51134e48e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-1743521668807662.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="依赖dart">
点 yes</p>
<p>然后耐心等待</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-43d1252ea2a16aa1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>完成后是这样的</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-ca465acf4625a24d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="重启即可"></p>
<p>点击重启后</p>
<p>问题解决完毕</p>
<hr>
<p>我们返回到 cli 中 敲</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">flutter doctor -v
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-69c5a9940e7e7d56.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里我发现我这遇到里之前没有的问题，
第一个 X 提示我 xcode 需要最低 9.0.0 的版本
第二个 X 提示我缺少一个叫 six 的 python 库</p>
<p>我这里因为系统版本的原因下载不了 9.0.0 以上的 xcode，只能升级版本后重新下载了，这个后面补上</p>
<p>先完成第二个，有两个选择 <code>pip install six</code> <code>sudo easy_install six</code>
根据提示敲击，我这里选择的是第二个</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">sudo easy_install six
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-ff387465d3c255b9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>然后我们只剩下 xcode 的问题了，如果你的 xcode 版本没问题，那你可以跳过这里，直接看 flutter 的运行相关</p>
<blockquote>
<p>系统更新</p>
</blockquote>
<p>到 mac app store 中 去下载新的系统版本</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-5ae3c88850fc63cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>完成后打开，接着一路下一步，都是中文，等待完成就行
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-f903a70c8e30747e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-4122d7524afdf43c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<hr>
<p>系统更新完成，现在开始更新 xcode
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-815b92b555aa9e6e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>完成后，回到 cli 中</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">flutter doctor -v
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-48b3c2ad9d12de0f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>提示我要同意协议
这里可以打开 xcode，也可以直接命令行敲击，建议直接打开 xcode</p>
<p>我这里用命令行同意</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">sudo xcodebuild -license
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-ea5586163f1ab738.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里点 enter（回车）</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-732c13661e1a4619.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里输入 agree 回车</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-3025c24c837a0ac0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里的错误还是需要打开 xcode，所以前面建议你直接打开 xcode app</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-41052541c3759fa8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这里之前遇到过，install 就行了</p>
<h2 id="到这里-xcode-的问题就都解决了">到这里 xcode 的问题就都解决了</h2>
<p>再次<code>flutter doctor -v</code></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-87bf9a275189846a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>pod 又出问题了，还是应该先升级系统，再一次性安装，这又来了无用功
按提示走把</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">brew install cocoapods
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-466a72d3f47f66e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>告诉我已经安装了 提示我 reinstall</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">brew reinstall cocoapods
</code></pre></div><p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-ef45a4214364b39d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-2645f936e37edbdb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这是最后一次了 除了没连接设备外，没其他问题了 😊</p>
<p>flutter 部分的环境配置到这里基本完成了，接着就该运行项目了</p>
<h3 id="运行项目">运行项目</h3>
<p>初次建立项目建议使用 cli 创建，因为会很慢，用 as 的话 你很难知道自己在等什么，甚至网络链接失败你都不知道</p>
<p>cli 里敲击</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">flutter create hello_world
</code></pre></div><p>项目名不能有大写字母，所以建议使用下划线作为单词的分隔
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-df946975341c5dd1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-53bc19a3603657d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这样就代表项目的文件都 ok 了，接着按照提示进入项目内，这里慢的话 可能是获取依赖的时候卡住了</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-52827f021a79dfa5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<h4 id="android-运行">android 运行</h4>
<p>右上角
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-f61953ec5aeb948b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-d92277b102e2d753.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-d5060026decab6a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>我这里新装的 sdk，没有 android 的镜像，所以 download 下
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-369e9e5bd740eb8d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-f14e8c2253aea282.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="等待中">
完成后点 finish 即可</p>
<p>接着点选刚刚下载的，一路 next+finish</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-54fa48301d344360.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>运行后关闭 device manager 回到主界面
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-328ba7567675bc1e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-1f00ddfb6c0e4bb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>这第一次运行会下载 gradle，速度不好说，可能会很慢
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-bdc3f58af4aa7c8a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
这个会下载这个，你可以用迅雷复制这里的链接下载下来，复制到如下图的文件夹下
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-75afd7333c275fd3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>我这里速度很好，很快就跑起来了
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-22c936d0d85637ab.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<h4 id="ios-运行">ios 运行</h4>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-9546b0fcc0c1ccf6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
在 as 中点这个 会开启一个 ios 模拟器</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-5ea9a972d2699831.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
在开启模拟器成功后，发现 as 识别不到，这种情况不要怕</p>
<p>命令行敲 flutter doctor -v 试试
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-7d9537d2c9e2c5e5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>我们看到，是有设备的，重启下 as 试试吧
<img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-821f4eb4902e9877.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p>
<p>设备出来了，我们点旁边的 run（绿三角）试试吧</p>
<p><img src="https://gitee.com/kikt-blog/blog-image/raw/master/jianshu/6770730-a5af8f5826cf8891.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png">
项目也跑起来了，大功告成</p>
<h2 id="后记">后记</h2>
<p>整篇文章是我边搭环境边写的
可以说很详细了，中间我还走了 xcode 版本号的弯路
但是项目后来还是成功的跑起来了，希望各位看我文章的 也能成功</p>
<p>可以看到我开始的截图 macos 版本是 10.12.3
后来安装了新版本 变成了 10.13.6</p>
<p>我单位的版本是 10.12.6 那个 macos 版本是可以安装 xcode 9.0 的</p>

                        </div>

                        

<div class="post-archive">
    <h2>See Also</h2>
    <ul class="listing">
        
        <li><a href="/posts/flutter/flutter-base-faq/">Flutter基础faq</a></li>
        
        <li><a href="/posts/flutter/flutter-newer-readme/">Flutter 项目新手向结构简析</a></li>
        
        <li><a href="/posts/flutter/flutter-first-blog/">Flutter开篇介绍</a></li>
        
        <li><a href="/posts/other/github-clone-slow/">github Clone速度慢的解决方案之一</a></li>
        
        <li><a href="/posts/ios/swift/swift-navigation-title-color-style/">swift navigation title 标题颜色代码设置</a></li>
        
    </ul>
</div>


                        <div class="post-meta meta-tags">
                            
                            <ul class="clearfix">
                                
                                <li><a href="http://www.kikt.top/tags/flutter">flutter</a></li>
                                
                                <li><a href="http://www.kikt.top/tags/mac">mac</a></li>
                                
                                <li><a href="http://www.kikt.top/tags/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83">开发环境</a></li>
                                
                            </ul>
                            
                        </div>
                    </article>
                    
    

    
    
    <div class="post bg-white">
      <script src="https://utteranc.es/client.js"
            repo= "caijinglong/kikt-blog-comment"
            issue-term="pathname"
            theme="github-light"
            crossorigin="anonymous"
            async>
      </script>
    </div>
    
                </div>
            </div>
            <div id="secondary">
    <section class="widget">
        <form id="search" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank" _lpchecked="1">
      
      <input type="text" name="q" maxlength="20" placeholder="Search">
      <input type="hidden" name="sitesearch" value="http://www.kikt.top">
      <button type="submit" class="submit icon-search"></button>
</form>
    </section>
    
    <section class="widget">
        <h3 class="widget-title">最近文章</h3>
<ul class="widget-list">
    
    <li>
        <a href="http://www.kikt.top/posts/java/crack/crack1/" title="使用javassist,修改jar包方法实现">使用javassist,修改jar包方法实现</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/github/actions/create/" title="Github action 的开发到发布">Github action 的开发到发布</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/flutter/jenkins&#43;fastlane/" title="flutter Jenkins&#43;fastlane 自动化打测试包, 并上传蒲公英">flutter Jenkins&#43;fastlane 自动化打测试包, 并上传蒲公英</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/go/compile-for-android/" title="编译 go 源码为 android 动态库(so)">编译 go 源码为 android 动态库(so)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/flutter/focusnode-2/" title="Flutter FocusNode 焦点那点事-(二)">Flutter FocusNode 焦点那点事-(二)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/flutter/focusnode-1/" title="Flutter FocusNode 焦点那点事-(一)">Flutter FocusNode 焦点那点事-(一)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/server/caddy/cros_for_local_dev/" title="用 Caddy 解决 web 开发中本地跨域的问题">用 Caddy 解决 web 开发中本地跨域的问题</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/flutter/route/navigator-helper2/" title="Navigator Helper2">Navigator Helper2</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/flutter/grey-app/" title="flutter 怎么实现app整体灰度">flutter 怎么实现app整体灰度</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/posts/flutter/plugin/flutter-sdk-import-aar/" title="Flutter 插件开发之引入aar到安卓部分 并使用本地maven">Flutter 插件开发之引入aar到安卓部分 并使用本地maven</a>
    </li>
    
</ul>
    </section>

    

    <section class="widget">
        <h3 class="widget-title">分类</h3>
<ul class="widget-list">
    
    <li>
        <a href="http://www.kikt.top/categories/android/">android(25)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/caddy/">caddy(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/dart/">dart(5)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/docker/">docker(3)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/flutter/">flutter(60)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/github/">github(3)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/go/">go(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/golang/">golang(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/iOS/">iOS(6)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/ios/">ios(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/java/">java(6)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/jetbrains/">jetbrains(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/other/">other(3)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/python/">python(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/server/">server(5)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/spring/">spring(3)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/tools/">tools(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/%E6%9D%82%E9%A1%B9/">杂项(1)</a>
    </li>
    
    <li>
        <a href="http://www.kikt.top/categories/%E6%B6%82%E9%B8%A6/">涂鸦(1)</a>
    </li>
    
</ul>
    </section>

    <section class="widget">
        <h3 class="widget-title">标签</h3>
<div class="tagcloud">
    
    <a href="http://www.kikt.top/tags/10/">10</a>
    
    <a href="http://www.kikt.top/tags/2.3/">2.3</a>
    
    <a href="http://www.kikt.top/tags/Clipboard/">Clipboard</a>
    
    <a href="http://www.kikt.top/tags/Javassist/">Javassist</a>
    
    <a href="http://www.kikt.top/tags/Migrate/">Migrate</a>
    
    <a href="http://www.kikt.top/tags/aar/">aar</a>
    
    <a href="http://www.kikt.top/tags/actions/">actions</a>
    
    <a href="http://www.kikt.top/tags/aidl/">aidl</a>
    
    <a href="http://www.kikt.top/tags/android/">android</a>
    
    <a href="http://www.kikt.top/tags/androidQ/">androidQ</a>
    
    <a href="http://www.kikt.top/tags/androidX/">androidX</a>
    
    <a href="http://www.kikt.top/tags/apk/">apk</a>
    
    <a href="http://www.kikt.top/tags/app/">app</a>
    
    <a href="http://www.kikt.top/tags/appcode/">appcode</a>
    
    <a href="http://www.kikt.top/tags/azure/">azure</a>
    
    <a href="http://www.kikt.top/tags/ble/">ble</a>
    
    <a href="http://www.kikt.top/tags/bottomsheet/">bottomsheet</a>
    
    <a href="http://www.kikt.top/tags/butterknife/">butterknife</a>
    
    <a href="http://www.kikt.top/tags/c/">c</a>
    
    <a href="http://www.kikt.top/tags/caddy/">caddy</a>
    
    <a href="http://www.kikt.top/tags/camera/">camera</a>
    
    <a href="http://www.kikt.top/tags/cameraX/">cameraX</a>
    
    <a href="http://www.kikt.top/tags/channel/">channel</a>
    
    <a href="http://www.kikt.top/tags/cocoapods/">cocoapods</a>
    
    <a href="http://www.kikt.top/tags/cupertino/">cupertino</a>
    
    <a href="http://www.kikt.top/tags/dart/">dart</a>
    
    <a href="http://www.kikt.top/tags/dart-2.6/">dart-2.6</a>
    
    <a href="http://www.kikt.top/tags/desktop/">desktop</a>
    
    <a href="http://www.kikt.top/tags/dialog/">dialog</a>
    
    <a href="http://www.kikt.top/tags/dmg/">dmg</a>
    
    <a href="http://www.kikt.top/tags/doc/">doc</a>
    
    <a href="http://www.kikt.top/tags/docker/">docker</a>
    
    <a href="http://www.kikt.top/tags/docker-compose/">docker-compose</a>
    
    <a href="http://www.kikt.top/tags/excel/">excel</a>
    
    <a href="http://www.kikt.top/tags/exists/">exists</a>
    
    <a href="http://www.kikt.top/tags/faq/">faq</a>
    
    <a href="http://www.kikt.top/tags/fastlane/">fastlane</a>
    
    <a href="http://www.kikt.top/tags/ffi/">ffi</a>
    
    <a href="http://www.kikt.top/tags/ffmpeg/">ffmpeg</a>
    
    <a href="http://www.kikt.top/tags/flexmark/">flexmark</a>
    
    <a href="http://www.kikt.top/tags/flutter/">flutter</a>
    
    <a href="http://www.kikt.top/tags/flutter-web/">flutter-web</a>
    
    <a href="http://www.kikt.top/tags/focus/">focus</a>
    
    <a href="http://www.kikt.top/tags/focusNode/">focusNode</a>
    
    <a href="http://www.kikt.top/tags/form/">form</a>
    
    <a href="http://www.kikt.top/tags/framework/">framework</a>
    
    <a href="http://www.kikt.top/tags/github/">github</a>
    
    <a href="http://www.kikt.top/tags/go/">go</a>
    
    <a href="http://www.kikt.top/tags/golang/">golang</a>
    
    <a href="http://www.kikt.top/tags/gradle/">gradle</a>
    
    <a href="http://www.kikt.top/tags/http/">http</a>
    
    <a href="http://www.kikt.top/tags/iOS/">iOS</a>
    
    <a href="http://www.kikt.top/tags/ide/">ide</a>
    
    <a href="http://www.kikt.top/tags/idea/">idea</a>
    
    <a href="http://www.kikt.top/tags/index/">index</a>
    
    <a href="http://www.kikt.top/tags/inside/">inside</a>
    
    <a href="http://www.kikt.top/tags/ios/">ios</a>
    
    <a href="http://www.kikt.top/tags/java/">java</a>
    
    <a href="http://www.kikt.top/tags/jenkins/">jenkins</a>
    
    <a href="http://www.kikt.top/tags/jetbrains/">jetbrains</a>
    
    <a href="http://www.kikt.top/tags/jsdelivr/">jsdelivr</a>
    
    <a href="http://www.kikt.top/tags/json/">json</a>
    
    <a href="http://www.kikt.top/tags/json_serializable/">json_serializable</a>
    
    <a href="http://www.kikt.top/tags/junit/">junit</a>
    
    <a href="http://www.kikt.top/tags/library/">library</a>
    
    <a href="http://www.kikt.top/tags/live-template/">live-template</a>
    
    <a href="http://www.kikt.top/tags/loadmore/">loadmore</a>
    
    <a href="http://www.kikt.top/tags/log/">log</a>
    
    <a href="http://www.kikt.top/tags/mac/">mac</a>
    
    <a href="http://www.kikt.top/tags/macos/">macos</a>
    
    <a href="http://www.kikt.top/tags/maven/">maven</a>
    
    <a href="http://www.kikt.top/tags/mysql/">mysql</a>
    
    <a href="http://www.kikt.top/tags/navigationbar/">navigationbar</a>
    
    <a href="http://www.kikt.top/tags/navigator/">navigator</a>
    
    <a href="http://www.kikt.top/tags/ndk/">ndk</a>
    
    <a href="http://www.kikt.top/tags/nginx/">nginx</a>
    
    <a href="http://www.kikt.top/tags/oc/">oc</a>
    
    <a href="http://www.kikt.top/tags/opencv/">opencv</a>
    
    <a href="http://www.kikt.top/tags/poi/">poi</a>
    
    <a href="http://www.kikt.top/tags/pub/">pub</a>
    
    <a href="http://www.kikt.top/tags/python/">python</a>
    
    <a href="http://www.kikt.top/tags/retrofit/">retrofit</a>
    
    <a href="http://www.kikt.top/tags/route/">route</a>
    
    <a href="http://www.kikt.top/tags/server/">server</a>
    
    <a href="http://www.kikt.top/tags/so/">so</a>
    
    <a href="http://www.kikt.top/tags/spp/">spp</a>
    
    <a href="http://www.kikt.top/tags/sprintboot/">sprintboot</a>
    
    <a href="http://www.kikt.top/tags/swift/">swift</a>
    
    <a href="http://www.kikt.top/tags/tap/">tap</a>
    
    <a href="http://www.kikt.top/tags/thymeleaf/">thymeleaf</a>
    
    <a href="http://www.kikt.top/tags/tips/">tips</a>
    
    <a href="http://www.kikt.top/tags/toast/">toast</a>
    
    <a href="http://www.kikt.top/tags/transition/">transition</a>
    
    <a href="http://www.kikt.top/tags/ui/">ui</a>
    
    <a href="http://www.kikt.top/tags/utf8/">utf8</a>
    
    <a href="http://www.kikt.top/tags/yield/">yield</a>
    
    <a href="http://www.kikt.top/tags/%E4%BA%8C%E8%BF%9B%E5%88%B6/">二进制</a>
    
    <a href="http://www.kikt.top/tags/%E4%BA%A4%E5%8F%89/">交叉</a>
    
    <a href="http://www.kikt.top/tags/%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91/">交叉编译</a>
    
    <a href="http://www.kikt.top/tags/%E4%BB%8B%E7%BB%8D/">介绍</a>
    
    <a href="http://www.kikt.top/tags/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/">代码规范</a>
    
    <a href="http://www.kikt.top/tags/%E5%86%B2%E7%AA%81/">冲突</a>
    
    <a href="http://www.kikt.top/tags/%E5%8A%A8%E6%80%81/">动态</a>
    
    <a href="http://www.kikt.top/tags/%E5%8F%91%E5%B8%83/">发布</a>
    
    <a href="http://www.kikt.top/tags/%E5%8F%AF%E6%89%A7%E8%A1%8C/">可执行</a>
    
    <a href="http://www.kikt.top/tags/%E5%9B%BE%E5%BA%8A/">图床</a>
    
    <a href="http://www.kikt.top/tags/%E5%9F%8E%E5%B8%82/">城市</a>
    
    <a href="http://www.kikt.top/tags/%E5%A4%A7%E6%96%87%E4%BB%B6/">大文件</a>
    
    <a href="http://www.kikt.top/tags/%E5%B7%A5%E5%85%B7/">工具</a>
    
    <a href="http://www.kikt.top/tags/%E5%B7%B2%E6%9C%89%E9%A1%B9%E7%9B%AE/">已有项目</a>
    
    <a href="http://www.kikt.top/tags/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/">开发环境</a>
    
    <a href="http://www.kikt.top/tags/%E6%80%BB%E7%BB%93/">总结</a>
    
    <a href="http://www.kikt.top/tags/%E6%85%A2/">慢</a>
    
    <a href="http://www.kikt.top/tags/%E6%89%93%E5%8C%85/">打包</a>
    
    <a href="http://www.kikt.top/tags/%E6%89%AB%E7%A0%81/">扫码</a>
    
    <a href="http://www.kikt.top/tags/%E6%8F%92%E4%BB%B6/">插件</a>
    
    <a href="http://www.kikt.top/tags/%E6%96%87%E6%A1%A3/">文档</a>
    
    <a href="http://www.kikt.top/tags/%E6%A8%A1%E6%9D%BF/">模板</a>
    
    <a href="http://www.kikt.top/tags/%E6%B8%B2%E6%9F%93/">渲染</a>
    
    <a href="http://www.kikt.top/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/">源码解析</a>
    
    <a href="http://www.kikt.top/tags/%E7%81%B0%E5%BA%A6/">灰度</a>
    
    <a href="http://www.kikt.top/tags/%E7%82%B9%E5%87%BB/">点击</a>
    
    <a href="http://www.kikt.top/tags/%E7%84%A6%E7%82%B9/">焦点</a>
    
    <a href="http://www.kikt.top/tags/%E7%88%AC%E8%99%AB/">爬虫</a>
    
    <a href="http://www.kikt.top/tags/%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86/">状态管理</a>
    
    <a href="http://www.kikt.top/tags/%E7%99%BE%E5%BA%A6%E5%9C%B0%E5%9B%BE/">百度地图</a>
    
    <a href="http://www.kikt.top/tags/%E7%BC%96%E7%A0%81/">编码</a>
    
    <a href="http://www.kikt.top/tags/%E7%BC%96%E7%A8%8B%E6%8A%80%E5%B7%A7/">编程技巧</a>
    
    <a href="http://www.kikt.top/tags/%E7%BC%96%E8%AF%91/">编译</a>
    
    <a href="http://www.kikt.top/tags/%E7%BF%BB%E8%AF%91/">翻译</a>
    
    <a href="http://www.kikt.top/tags/%E8%93%9D%E7%89%99/">蓝牙</a>
    
    <a href="http://www.kikt.top/tags/%E8%A1%A8%E5%8D%95/">表单</a>
    
    <a href="http://www.kikt.top/tags/%E8%B7%AF%E7%94%B1/">路由</a>
    
    <a href="http://www.kikt.top/tags/%E8%BF%87%E5%9C%BA%E5%8A%A8%E7%94%BB/">过场动画</a>
    
    <a href="http://www.kikt.top/tags/%E9%9A%90%E7%A7%81/">隐私</a>
    
</div>
    </section>

    
<section class="widget">
    <h3 class="widget-title">友情链接</h3>
    <ul class="widget-list">
        
        <li>
            <a target="_blank" href="https://github.com/Caijinglong" title="我的Github">我的Github</a>
        </li>
        
        <li>
            <a target="_blank" href="https://flutter.dev" title="flutter 官网">flutter 官网</a>
        </li>
        
    </ul>
</section>


    <section class="widget">
        <h3 class="widget-title">其它</h3>
        <ul class="widget-list">
            <li><a href="http://www.kikt.top/index.xml">文章 RSS</a></li>
        </ul>
    </section>
</div>
        </div>
    </div>
</div>
<footer id="footer">
    <div class="container">
        <div>
            <p>如果我的blog对您有帮助,而您愿意捐赠 😆, 可以用下面的二维码</p>
            <img style="width:5rem;" src="https://dev.azure.com/cjlspy/844861b8-ee45-48a3-b430-b974684baaaa/_apis/git/repositories/bf4da1c1-1cfa-4f54-8a75-745cce2b737c/items?versionDescriptor%5Bversion%5D=master&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&resolveLfs=true&%24format=octetStream&api-version=5.0&path=%2F20190424141834.png"/>
            <img style="width:5rem; padding-left: 2rem;" 
            src="https://dev.azure.com/cjlspy/844861b8-ee45-48a3-b430-b974684baaaa/_apis/git/repositories/bf4da1c1-1cfa-4f54-8a75-745cce2b737c/items?versionDescriptor%5Bversion%5D=master&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&resolveLfs=true&%24format=octetStream&api-version=5.0&path=%2F20190424141931.png"/>
            <img style="width:5rem; padding-left: 2rem;" 
            src="https://dev.azure.com/cjlspy/844861b8-ee45-48a3-b430-b974684baaaa/_apis/git/repositories/bf4da1c1-1cfa-4f54-8a75-745cce2b737c/items?versionDescriptor%5Bversion%5D=master&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&resolveLfs=true&%24format=octetStream&api-version=5.0&path=%2F20190424142013.png"/>
        </div>
        &copy; 2018 <a href="http://www.kikt.top">caijinglong的博客 By caijinglong</a>.
        Powered by <a rel="nofollow noreferer noopener" href="https://gohugo.io" target="_blank">Hugo</a>.
        <a href="http://www.flysnow.org/" target="_blank">Theme</a> based on <a href="https://github.com/rujews/maupassant-hugo" target="_blank">maupassant</a>.<br/>
        本站所有内容基于<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" style="color:coral">CC4.0</a>协议发布,需要转载必须署名
        <br/>
        如果有问题可以<a href="mailto:cjl_spy@163.com">email联系我</a>
        <br/>
        京ICP备18038473号-1
        
    </div>
</footer>


    <script type="text/javascript" src="/js/prism.js" async="true"></script>
    <script type="text/javascript">
    
    (function(){
        $("pre code").parent().addClass("line-numbers")
    }())

    window.MathJax = {
        tex2jax: {
            inlineMath: [ ['$','$'] ],
            processEscapes: true
        }
    };
    </script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>

<a id="rocket" href="#top"></a>
<script type="text/javascript" src="/js/totop.js?v=0.0.0" async=""></script>



<script type="text/javascript" src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" async></script>




</body>
</html>
